In [ ]:
# We willen de software bibliotheken "RPi.GPIO" en "time" gebruiken in onze code
import RPi.GPIO as GPIO
import time

# Voor de GPIO pinnetjes zullen we de BCM nummering gebruiken (cfr nummers op de behuizing)
GPIO.setmode(GPIO.BCM)

# De PIR pin van de sensor sluiten we aan op poort 18
PIR_PIN = 7
#De LED gaan we aansluiten op poort 24
LED_PIN = 18

# Op de Raspberry Pi stellen we de PIR pin in als "input" en de LED poort als "output"
# Op die manier kan de Raspberry Pi luisteren naar de PIR en een signaal sturen naar de LED
GPIO.setup(PIR_PIN, GPIO.IN)
GPIO.setup(LED_PIN, GPIO.OUT)

In [ ]:
# We maken een functie om de led één keer te laten knipperen
def flash_led():
    GPIO.output(LED_PIN, 1)
    time.sleep(0.5)
    GPIO.output(LED_PIN, 0)

In [ ]:
# En op basis daarvan een functie die uitgevoerd moet worden als er beweging gedetecteerd wordt 
def on_motion(PIR_PIN):
    flash_led()
    print("Halt!")

In [ ]:
# Hier koppelen we de PIR_PIN aan de on_motion functie die we net gemaakt hebben.
# we registreren een event detection in de GPIO bibliotheek en bepalen dat,
# wanneer de Raspberry Pi ziet dat er op de PIR_PIN een "RISING" signaal binnenkomt (de pin gaat van 0 naar 1),
# de on_motion functie uitgevoerd moet worden.
GPIO.add_event_detect(PIR_PIN, GPIO.RISING, callback=on_motion)

Nu kan je de bewegingssensor triggeren en zal de Raspberry Pi je functie uitvoeren


In [ ]:
#GPIO opkuisen:
#de net geregistreerde event detection verwijderen en GPIO herinitialiseren
GPIO.remove_event_detect(PIR_PIN)
GPIO.cleanup()